export default {
  // 驱动应用的数据源，用于保存所有组件的公共数据
  state: {
    vuexNum: 'vuex默认参数',
    currDbSource: 'vuex第二个参数'
  },
  //   可以将 getter 理解为 store 的计算属性,
  //   getters 的返回值会根据它的依赖被缓存起来，且只有当它的依赖值发生了改变才会被重新计算。
  getters: {},
  //   mutations 对象中保存着更改数据的回调函数,该函数名官方规定叫 type,
  //   第一个参数是 state, 第二参数是payload, 也就是自定义的参数。
  //   mutation 必须是同步函数。mutations 对象里的方法需要使用 store.commit 调用
  mutations: {
    changeCity (state, vuexNum) {
      state.vuexNum = vuexNum
    },
    saveCurrDbSource (state, currDbSource) {
      state.currDbSource = currDbSource
      console.log(state.currDbSource, '打印通过actions，我被触发了')
    }

  },
  //   Action 提交的是 mutation 而不是直接变更状态。
  //   action 可以包含任意异步操作。actions 对象里的方法需要使用 store.dispatch 调用。
  // Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象，
  // 因此你可以调用 context.commit 提交一个 mutation，或者通过 context.state 和 context.getters 来获取 state 和 getters。
  actions: {
    actionsCurrDbSource ({ state, commit }, payload) {
      console.log(state, commit, payload, '打印我是actions，我触发了')
      commit('saveCurrDbSource', payload)
    }

  }
}
